from abc import abstractmethod
from .MyLogger import MyLogger
from .PersistStorage import PersistStorage

class Instruction:
    logger = None
    cfg = None
    def __init__(self) -> None:
        self.instSymbol:str = ''
        self.shortopt:str = ''
        self.helpInfo:str = ''

    @abstractmethod
    def Execute(self, *args) -> None: ...

    @classmethod
    def SetLogger(cls, logger:MyLogger):
        cls.logger = logger

    @abstractmethod
    def GetHelp(self) -> str: ...

    @classmethod
    def SetCfg(cls, cfg:PersistStorage):
        cls.cfg = cfg
